/*
 *  Copyright (c) Iris Dev. team. All rights reserved.
 *  See http://www.communico.pro/license for details.
 *
 */
#ifndef _AS_MEMCACHED_TEST_HPP__
#define _AS_MEMCACHED_TEST_HPP__ 1

#include <ASLoadableObject.hpp>
#include <ASHandler.hpp>

using namespace CAS;

namespace CAS_MOD
{

/**
  @class ASMemcachedTest ASMemcachedTest.hpp <ASMemcachedTest.cpp>
  @brief Application server memcached connector
*/
class ASMemcachedTest:
  public CAS::ASHandler
{
public:
	/**
	  @brief A constructor
	*/
	ASMemcachedTest();

	/**
	  @brief Initialize handler
	  @param oData - data model
	  @param oRequest - request object
	  @param oResponse - response object
	  @param oGlobalPool - global pool of objects
	  @param oVhostPool - virtual host pool
	  @param oLocationConfig - location configuration
	  @param oIMC - Inter-Module communication object
	  @param oLogger - application server logger
	  @return HANDLER_OK - if success, HANDLER_ERROR - if any error occured, HANDLER_DONE - if no futher processing need
	*/
	INT_32 Handler(CTPP::CDT   & oData,
	               ASRequest   & oRequest,
	               ASResponse  & oResponse,
	               ASPool      & oGlobalPool,
	               ASPool      & oVhostPool,
	               ASPool      & oRequestPool,
	               CTPP::CDT   & oLocationConfig,
	               ASObject    * pContextData,
	               CTPP::CDT   & oIMC,
	               ASLogger    & oLogger);

	/**
	  @brief Get object type
	  @return human-readable type of module
	*/
	CCHAR_P GetModuleType() const;

	/**
	  @brief Get handler name
	*/
	CCHAR_P GetObjectName() const;

	/**
	  @brief A destructor
	*/
	~ASMemcachedTest() throw();
private:

};

EXPORT_HANDLER(ASMemcachedTest)

} // namespace CAS_MOD
#endif // _AS_MEMCACHED_TEST_HPP__
// End.
